@@ -7,6 +7,8 @@ services: |
||
7 | 7 |
env: |
8 | 8 |
global: |
9 | 9 |
- APP_SECRET_TOKEN=b2724973fd81c2f4ac0f92ac48eb3f0152c4a11824c122bcf783419a4c51d8b9bba81c8ba6a66c7de599677c7f486242cf819775c433908e77c739c5c8ae118d |
10 |
+ - RSPEC_TASK=spec:nofeatures |
|
11 |
+ - COVERALLS_PARALLEL=true |
|
10 | 12 |
- secure: fzmSI7PQz6CJiIJNAtLAuy3TMmYCrK4bUil3uufh8JkHfpSGWOZt2i6fZ8yZ7pzwG5Aw7eZDgdFsNcEPJlgUDJhlwjg+QxCJslhotTQ9qI3Ieo85peWlU9dZFTOZcrCu0net/hY2FE4ZpTRb5r8A/DRv9ukA8P8tShhePCjckgg= |
11 | 13 |
- secure: YjW07LpRSiC9xB6PhLQ4LVv2VphvF3IacV43PLfvzdagjy14yAwKXTUlSadgRaMbndB2dlCTe3YcY11a/xtX/2HDrF14NHPXQdL7e2dJUS3CDLSKZK26x1SOiaaDIrl1jO1xr5kOUd+564MAcNUzDTJQR4CrWl/5t6EwW4iYQVc= |
12 | 14 |
- secure: RJiSTB9Anax6uL6mgYY1m42w71ohlsfIlVCk7ho6W19ZfSzQOfom0mBdeNwfgmXsMMnvnqatfxSg8k3C//pRtI/tjzAovHd7t1YIN1IkDNf9uSpzrIeXXc4fSHaVxnl512oI/eBQy9MSBjVZjrg5XEzLKKEGsZCai+ZKB4PS+nM= |
@@ -15,15 +17,21 @@ env: |
||
15 | 17 |
- DATABASE_ADAPTER=postgresql DATABASE_USERNAME=postgres |
16 | 18 |
- DOCKER_IMAGE=cantino/huginn-single-process DOCKERFILE=docker/single-process/Dockerfile |
17 | 19 |
- DOCKER_IMAGE=cantino/huginn DOCKERFILE=docker/multi-process/Dockerfile |
20 |
+ - RSPEC_TASK=spec:features |
|
18 | 21 |
matrix: |
19 | 22 |
exclude: |
20 | 23 |
- env: DOCKER_IMAGE=cantino/huginn-single-process DOCKERFILE=docker/single-process/Dockerfile |
21 | 24 |
- env: DOCKER_IMAGE=cantino/huginn DOCKERFILE=docker/multi-process/Dockerfile |
25 |
+ - env: RSPEC_TASK=spec:features |
|
22 | 26 |
include: |
23 | 27 |
- rvm: 2.3.0 |
24 | 28 |
env: DATABASE_ADAPTER=mysql2 DOCKER_IMAGE=cantino/huginn-single-process DOCKERFILE=docker/single-process/Dockerfile |
25 | 29 |
- rvm: 2.3.0 |
26 | 30 |
env: DATABASE_ADAPTER=mysql2 DOCKER_IMAGE=cantino/huginn DOCKERFILE=docker/multi-process/Dockerfile |
31 |
+ - rvm: 2.3.0 |
|
32 |
+ env: RSPEC_TASK=spec:features DATABASE_ADAPTER=mysql2 |
|
33 |
+ - rvm: 2.3.0 |
|
34 |
+ env: RSPEC_TASK=spec:features DATABASE_ADAPTER=postgresql DATABASE_USERNAME=postgres |
|
27 | 35 |
rvm: |
28 | 36 |
- 2.1 |
29 | 37 |
- 2.2 |
@@ -34,7 +42,8 @@ before_install: |
||
34 | 42 |
- sudo apt-get -qq update |
35 | 43 |
- sudo apt-get install -y mysql-server |
36 | 44 |
script: |
37 |
- - if [ -z "${DOCKER_IMAGE}" ]; then bundle exec rake db:create db:migrate && bundle exec rake; else ./build_docker_image.sh; fi |
|
45 |
+ - if [ -z "${DOCKER_IMAGE}" ]; then bundle exec rake db:create db:migrate; else true; fi |
|
46 |
+ - if [ -z "${DOCKER_IMAGE}" ]; then bundle exec rake $RSPEC_TASK; else ./build_docker_image.sh; fi |
|
38 | 47 |
notifications: |
39 | 48 |
irc: |
40 | 49 |
channels: |
@@ -43,9 +52,4 @@ notifications: |
||
43 | 52 |
- "<%{author}> %{branch} - %{commit} (%{commit_message}): %{message}" |
44 | 53 |
- 'Change view : %{compare_url}' |
45 | 54 |
- 'Build details : %{build_url}' |
46 |
- webhooks: |
|
47 |
- urls: |
|
48 |
- - https://webhooks.gitter.im/e/5f92cc0393c6f1defe0d |
|
49 |
- on_success: change # options: [always|never|change] default: always |
|
50 |
- on_failure: always # options: [always|never|change] default: always |
|
51 |
- on_start: never # options: [always|never|change] default: never |
|
55 |
+ webhooks: https://coveralls.io/webhook?repo_token=COVERALLS_REPO_TOKEN |
@@ -155,6 +155,7 @@ group :development do |
||
155 | 155 |
gem 'shoulda-matchers' |
156 | 156 |
gem 'vcr' |
157 | 157 |
gem 'webmock', '~> 1.17.4', require: false |
158 |
+ gem 'database_cleaner', '~> 1.5.3' |
|
158 | 159 |
end |
159 | 160 |
end |
160 | 161 |
|
@@ -166,6 +166,7 @@ GEM |
||
166 | 166 |
crack (0.4.2) |
167 | 167 |
safe_yaml (~> 1.0.0) |
168 | 168 |
daemons (1.1.9) |
169 |
+ database_cleaner (1.5.3) |
|
169 | 170 |
debug_inspector (0.0.2) |
170 | 171 |
delayed_job (4.1.1) |
171 | 172 |
activesupport (>= 3.0, < 5.0) |
@@ -599,6 +600,7 @@ DEPENDENCIES |
||
599 | 600 |
coffee-rails (~> 4.1.1) |
600 | 601 |
coveralls |
601 | 602 |
daemons (~> 1.1.9) |
603 |
+ database_cleaner (~> 1.5.3) |
|
602 | 604 |
delayed_job (~> 4.1.0) |
603 | 605 |
delayed_job_active_record! |
604 | 606 |
delorean |
@@ -0,0 +1,9 @@ |
||
1 |
+if defined? RSpec |
|
2 |
+ namespace :spec do |
|
3 |
+ desc 'Run all specs in spec directory (exluding feature specs)' |
|
4 |
+ RSpec::Core::RakeTask.new(:nofeatures) do |task| |
|
5 |
+ ENV['RSPEC_TASK'] = 'spec:nofeatures' |
|
6 |
+ task.exclude_pattern = "spec/features/**/*_spec.rb" |
|
7 |
+ end |
|
8 |
+ end |
|
9 |
+end |
@@ -15,11 +15,19 @@ Capybara.default_max_wait_time = CAPYBARA_TIMEOUT |
||
15 | 15 |
RSpec.configure do |config| |
16 | 16 |
config.include Warden::Test::Helpers |
17 | 17 |
config.include AlertConfirmer, type: :feature |
18 |
- config.before :suite do |
|
18 |
+ |
|
19 |
+ config.before(:suite) do |
|
19 | 20 |
Warden.test_mode! |
21 |
+ DatabaseCleaner.clean_with(:truncation) |
|
22 |
+ end |
|
23 |
+ |
|
24 |
+ config.before(:each) do |example| |
|
25 |
+ DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction |
|
26 |
+ DatabaseCleaner.start |
|
20 | 27 |
end |
21 | 28 |
|
22 |
- config.after :each do |
|
29 |
+ config.after(:each) do |
|
30 |
+ DatabaseCleaner.clean |
|
23 | 31 |
Warden.test_reset! |
24 | 32 |
end |
25 | 33 |
end |
@@ -1,4 +1,4 @@ |
||
1 |
-require 'capybara_helper' |
|
1 |
+require 'rails_helper' |
|
2 | 2 |
|
3 | 3 |
describe Admin::UsersController do |
4 | 4 |
it "requires to be signed in as an admin" do |
@@ -1,4 +1,4 @@ |
||
1 |
-require 'capybara_helper' |
|
1 |
+require 'rails_helper' |
|
2 | 2 |
|
3 | 3 |
describe "Creating a new agent", js: true do |
4 | 4 |
before(:each) do |
@@ -1,4 +1,4 @@ |
||
1 |
-require 'capybara_helper' |
|
1 |
+require 'rails_helper' |
|
2 | 2 |
|
3 | 3 |
describe "Editing an agent", js: true do |
4 | 4 |
it "creates an alert if a agent with invalid json is submitted" do |
@@ -38,7 +38,7 @@ RSpec.configure do |config| |
||
38 | 38 |
# If you're not using ActiveRecord, or you'd prefer not to run each of your |
39 | 39 |
# examples within a transaction, remove the following line or assign false |
40 | 40 |
# instead of true. |
41 |
- config.use_transactional_fixtures = true |
|
41 |
+ config.use_transactional_fixtures = ENV['RSPEC_TASK'] == 'spec:nofeatures' |
|
42 | 42 |
|
43 | 43 |
# rspec-rails 3 will no longer automatically infer an example group's spec type |
44 | 44 |
# from the file location. You can explicitly opt-in to this feature using this |
@@ -70,3 +70,7 @@ RSpec.configure do |config| |
||
70 | 70 |
config.include SpecHelpers |
71 | 71 |
config.include Delorean |
72 | 72 |
end |
73 |
+ |
|
74 |
+if ENV['RSPEC_TASK'] != 'spec:nofeatures' |
|
75 |
+ require 'capybara_helper' |
|
76 |
+end |